#仅做日志分割、tar打包备份，不会删除原有日志！！
#可分离日期中所有日期！
#error日志路径
LOGPATH=/root/error.log

#输出目录
OUTDIR=~/BAK/nginx-error





#需核对日期列
########### errror 日志样例  以空格分割日期在第一列($1)  （日期后是空格） #######################
#2021/11/19 08:21:22 [error] 15673#0: *48691964 open() "/home/ngo/nginx19/h
#第一列：2021/11/19
#日期在第一列
DATEF='$1'








 
##########################     以下无需修改    #################################
echo "请等待，正则进行日志分割……"
####获取日期
cat $LOGPATH | grep "^[0-9]" |awk '{print '$DATEF'}'|sort -u >  /tmp/tmpdate
#本机IP
IPLAN=`hostname -I|awk '{print $1}'`
#分隔符
LINE='_'
#创建输出目录
mkdir -p $OUTDIR
#获取日志名称
FILENAME=`echo $LOGPATH|awk -F "/" '{print $NF}'`
#for循环分割
for i in `cat /tmp/tmpdate`
do
cd $OUTDIR
echo "正在分割 $i"
#删除日期中'/'
echo $i|sed 's#/##g' > /tmp/DMY
DDATE=`cat /tmp/DMY`
cat $LOGPATH |grep "$i" > $FILENAME$LINE$DDATE$LINE$IPLAN
#tar 打包
TAREX=.tar.gz
tar -zcf $FILENAME$LINE$DDATE$LINE$IPLAN$TAREX  $FILENAME$LINE$DDATE$LINE$IPLAN
done
echo "分割完成：输出目录：$OUTDIR"
